home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cchh01.arc / RBBS4.H < prev    next >
Text File  |  1986-03-14  |  10KB  |  296 lines

  1. /************************************************************************
  2. * RBBS4.H
  3.  
  4. Release 7: RBBS 4.1 Edit 02  27 May 84
  5. Release 6: RBBS 4.1 Edit 01  30 Apr 84
  6. Release 5: RBBS 4.1 Edit 00  03 Mar 84
  7.  
  8. Release 4: RBBS 4.0 Edit 21  26 Feb 84
  9. Release 3: RBBS 4.0 Edit 20  04 Feb 84
  10. Release 2: RBBS 4.0 Edit 19  30 Jan 84
  11. Release 1: RBBS 4.0 Edit 18  29 Jan 84
  12.  
  13. */
  14.  
  15. #define    VERSION    "RBBS 4.1 Edit 02 (JCG/FJW - 27 May 84)"
  16.  
  17. /************************************************************************
  18. * Set PERSONLY to TRUE if generating a system to use PERSONAL only
  19. */
  20.  
  21. #define    PERSONLY    FALSE    /* TRUE: PERSONAL only            */
  22.  
  23. /************************************************************************
  24. * Set NOSITE to TRUE if you have LASTREAD set and don't want your users
  25. * asked for a site name (nor display it with the U Command).
  26. */
  27.  
  28. #define    NOSITE        FALSE    /* TRUE: no site prompt when LASTREAD is
  29.                    set to TRUE                */
  30.  
  31. /************************************************************************
  32. * Set NEWFLAG to '*' if you want new users denied access to CP/M, else
  33. * set to '+'.
  34. */
  35.  
  36. #define    NEWFLAG        '*'    /* '*' = CP/M Access DENIED to new users
  37.                    '+' = CP/M Access OK
  38.                    '%' = Same as *, but no E or K    */
  39.  
  40. /************************************************************************
  41. * Set RULER TRUE if you want the non-expert to see a ruler line at the
  42. * beginning of message text entry.
  43. */
  44.  
  45. #define    RULER        TRUE    /* TRUE: ruler line displayed        */
  46.  
  47. /************************************************************************
  48. * Set PCREND FALSE if message text input is to be ended by a CR on a new
  49. * line.  (Edit the MSGHELP.CCC file to show this.)  Otherwise, if set
  50. * TRUE, then only a PERIOD (".") followed by a CR on a new line ends
  51. * input.
  52. */
  53.  
  54. #define    PCREND        FALSE    /* TRUE: only .<cr> ends msg text input    */
  55.  
  56. /************************************************************************
  57. * Set SENDOK TRUE to allow sending messages to non-users
  58. */
  59.  
  60. #define    SENDOK        TRUE    /* TRUE: allow sending to any name    */
  61.  
  62. /************************************************************************
  63. * If the case of the user password is to be significant, set PWCASE to
  64. * TRUE:
  65. */
  66.  
  67. #define    PWCASE        TRUE    /* TRUE: case of password is significant*/
  68.  
  69. /************************************************************************
  70. * Set NOUCMD to TRUE if you wish to make the U Command only for the
  71. * SYSOP:
  72. */
  73.  
  74. #define    NOUCMD        FALSE    /* TRUE: U Command SYSOP only        */
  75.  
  76. /************************************************************************
  77. * Set PREREG to TRUE if you intend to allow only preregistered callers
  78. * access this program.  You can preregister users (or modify their
  79. * entries) with UTIL.
  80. */
  81.  
  82. #define    PREREG        FALSE    /* TRUE: only preregistered users    */
  83.  
  84. /************************************************************************
  85. * SITEPROMPT will appear as the site prompt for the new user, normally,
  86. * "City, State"
  87. */
  88.  
  89. #define    SITEPROMPT    "City, State"
  90.  
  91. /************************************************************************
  92. * Set CHAINEXIT to FALSE if you do not wish to chain to some program,
  93. * like MENU, renamed to AUTO.COM upon exit with the C Command
  94. */
  95.  
  96. #define    CHAINEXIT    FALSE    /* TRUE: C command chains to AUTO.COM    */
  97. #define    CHAIN        "AUTO"    /* Default name of the chained program    */
  98.  
  99. /************************************************************************
  100. * Set HANGUP to FALSE if you do not wish to chain to some program that
  101. * will hang up the call.  The G Command will exit to this program, as
  102. * well as failed password attempts.
  103. */
  104.  
  105. #define    HANGUP        TRUE    /* TRUE: G command chains to HANGUP.COM    */
  106. #define    HANG        "HANGUP"/* Default name of the HANGUP program    */
  107.  
  108. /************************************************************************
  109. * LOCKEM is only useful in a multi-user environment, such as TurboDOS,
  110. * to avoid conflicts while updating USER.CCC or the current .MSG file.
  111. * If this DEFINE is present, both a lokrec and a frerec function must be
  112. * provided, similar to the sample described in TDOSFN.CSM
  113. */
  114.  
  115. #define    LOCKEM        FALSE    /* TRUE: lock/free record used        */
  116.  
  117. /************************************************************************
  118. * If you are not providing a daytim function similar to the sample in
  119. * DAYTIM.CSM, set DATETIME to FALSE.  The daytim function must return
  120. * the address of a null-terminated string in HL, which is exactly 19
  121. * characters long, including the trailing null.
  122. */
  123.  
  124. #define    DATETIME    FALSE    /* TRUE: daytim function used        */
  125.  
  126. /************************************************************************
  127. * Whether or not you are using daytim above, set ZONE to your
  128. * three-character time zone.
  129. */
  130.  
  131. #define    ZONE        "MST"    /* System Time Zone            */
  132.  
  133. /************************************************************************
  134. * If RBBS4 is not being used as a front-end program, and some other
  135. * program creates a LASTCALR file containing the first and last name of
  136. * the caller, set LASTREAD to TRUE and to the location of the LASTCALR
  137. * file.  RBBS4 will use that name and assume the caller has already been
  138. * validated.  This DEFINE should NOT be used un a multi-user environment
  139. * unless each LASTCALR file is a different name for each "user".
  140. */
  141.  
  142. #define    LASTREAD    FALSE        /* TRUE:  LASTCALR file is read    */
  143. #define    LASTR        "B:LASTCALR"    /* Default name of file        */
  144.  
  145. /************************************************************************
  146. * If RBBS4 is being used as a front-end program, and other programs,
  147. * such as XMODEM, expect the contents of LASTCALR to be valid, set this
  148. * DEFINE to TRUE, and RBBS4 will correctly write to LASTCALR.
  149. */
  150.  
  151. #define LASTWRITE    TRUE        /* TRUE: LASTCALR file is written*/
  152. #define LASTW        "15/A:LASTCALR"    /* Default name of file        */
  153.  
  154. /************************************************************************
  155. * The following two DEFINEs determine where RBBS4 expects to find the
  156. * files it needs.  By BDS-C convention, you may use user/drive here, as
  157. * in "15/B:", if that's where the files are.
  158. */
  159.  
  160. #define    DRIVE        "15/A:"    /* Drive used to find ALL RBBS4        */
  161. #define    DSK(fn)        "15/A:fn"/* support files            */
  162.  
  163. /************************************************************************
  164. * This last customizable DEFINE may be a string of up to 30 characters,
  165. * and is used only by UTIL to set up the initial entry in USERS.CCC,
  166. * that of the SYSOP.
  167. */
  168.  
  169. #define    SYSITE        "El Paso, TX"    /* Home site of SYSOP        */
  170.  
  171. /************************************************************************/
  172. /*             END OF CUSTOMIZATION DEFINES            */
  173. /************************************************************************/
  174.  
  175. #define    SITELGTH    29
  176. #define    SUMSIZE        30
  177. #define    NAMELGTH    30
  178. #define    MLINESIZ    64
  179. #define    MLINELIM    24
  180. #define    MAXMSGS        200
  181. #define    MSIZE        (MLINELIM+1)*MLINESIZ
  182.  
  183. #define    YES        TRUE
  184. #define    NO        FALSE
  185.  
  186. #ifdef    DATETIME
  187.     char    sysdate[23];    /* Storage for current DATE/TIME    */
  188.     char    logdate[23];    /* Logon DATE/TIME            */
  189. #else
  190.     char    sysdate[9];    /* Storage for current DATE        */
  191.     char    logdate[9];    /* Logon DATE                */
  192. #endif
  193.  
  194.  
  195.     char    cmsgfile[9];    /* Current .MSG file name        */
  196.     char    msgfile[18];    /* Storage for active .MSG file name    */
  197.     char    ndxfile[18];    /* Storage for Index file name        */
  198.     int    fileflag;    /* Tells which files have been seen    */
  199.     int    cchoice;    /* Current .MSG file number -1        */
  200.  
  201.     int    sysop;        /* set if sysop logged in        */
  202.     int    expert;        /* Expert Flag                */
  203.     int    rtnok;        /* Return OK Flag            */
  204.     int    personal;    /* Set TRUE if current msgfile is    */
  205.                 /* PERSONAL.MSG                */
  206.  
  207.     int    mptr;        /* Pointer to Current Message        */
  208.  
  209.                 /* Info loaded from .MSG file         */
  210.     int    actmsg,frstmsg,lastmsg,msgct,lstseen;
  211.     int    mno[MAXMSGS],mndx[MAXMSGS];
  212.  
  213.                 /* Storage for Current Message      */
  214.     char    m[MSIZE];
  215.     char    *lp[MLINELIM+1];
  216.  
  217.     char    tmpstr[SECSIZ];    /* Handy temporary string space        */
  218.  
  219.  
  220. struct    _sum
  221.     {
  222.     int    msgno;
  223.     int    lct;
  224.     int    mstat;
  225. #ifdef    DATETIME
  226.     char    date[23];
  227. #else
  228.     char    date[9];
  229. #endif
  230.     char    fnm[NAMELGTH+1];
  231.     char    tnm[NAMELGTH+1];
  232.     char    subj[SUMSIZE];
  233.     };
  234.  
  235. /* Offsets for summary record items                    */
  236.  
  237. #define    LNS    5
  238. #define    STAT    8
  239. #define    DT    11
  240. #define    FM    34
  241. #define    TO    65
  242. #define    SU    96
  243.  
  244.  
  245. struct    _user
  246.     {
  247.     int    recno;            /* Record Number of Current User*/
  248.     int    maxno;            /* Record Number of Max User    */
  249.     int    lstmsg[7];        /* Last message seen        */
  250.     int    bellflag;        /* BELL Flag            */
  251.     int    xpert;            /* EXPERT Flag            */
  252.     char    ustat[2];        /* MF Status            */
  253.     char    nm[NAMELGTH+1];        /* Name of Current User        */
  254.     char    from[SITELGTH+1];    /* City, State of Current User    */
  255.     char    pwd[7];            /* PASSWORD             */
  256. #ifdef    DATETIME
  257.     char    lastlog[23];        /* Last LOGON DATE/TIME        */
  258. #else
  259.     char    lastlog[9];        /* Last LOGON DATE        */
  260. #endif
  261.     };
  262.  
  263. /* Offsets for user record items                    */
  264.  
  265. #define    NM    0        /* Name                    */
  266. #define    PRV    31        /* User Status                */
  267. #define    UBL    33        /* Bell Flag                */
  268. #define    UXP    35        /* Expert Flag                */
  269. #define    PWD    37        /* Password                */
  270. #define    LLG    44        /* Last login                */
  271. #define    FRM    67        /* From                    */
  272. #define    LMG0    97        /* Last msg seen (GENERAL)        */
  273. #define    LMG1    101        /* Last msg seen            */
  274. #define    LMG2    105        /* Last msg seen            */
  275. #define    LMG3    109        /* Last msg seen            */
  276. #define    LMG4    113        /* Last msg seen            */
  277. #define    LMG5    117        /* Last msg seen            */
  278. #define    LMG6    121        /* Last msg seen            */
  279.  
  280.  
  281. /*  The following are globals for use with RBBSCIO            */
  282.  
  283.     char    pp[SECSIZ];    /* Previous Prompt string        */
  284.     int    ocnt;        /* Output character count        */
  285.     int    belflg;        /* BELL Flag                */
  286.     int    cflg;        /* Character Flag:
  287.                     2 = use Mask Characters
  288.                     3 = output CRLF after input    */
  289.     char    sav[SECSIZ];    /* Typeahead buffer            */
  290.     int    icnt;        /* Input character count        */
  291.     int    colcnt;        /* Horizontal curpos            */
  292.  
  293. /*********************     END OF RBBS4.H   *******************************/
  294. 0        /* Name                    */
  295. #define    PRV    31        /* User Status                */
  296. #define    UBL